package org.skywork.top.core.algorithm.num;

import java.util.Arrays;
import java.util.List;

/**
 *  杨辉三角 II
 */
public class no_119 {

    /**
     * 给定一个非负索引 rowIndex，返回「杨辉三角」的第 rowIndex 行。
     * 在「杨辉三角」中，每个数是它左上方和右上方的数的和。
     *          1
     *         1 1
     *        1 2 1
     *       1 3 3 1
     *      1 4 6 4 1
     *    1 5 10 10 5 1
     */
    public List<Integer> getRow(int rowIndex) {

        /**
         * 示例 1:
         *
         * 输入: rowIndex = 3
         * 输出: [1,3,3,1]
         *
         *
         * 示例 2:
         *
         * 输入: rowIndex = 0
         * 输出: [1]
         *
         *
         * 示例 3:
         *
         * 输入: rowIndex = 1
         * 输出: [1,1]
         */
        Integer[][] arr = new Integer[rowIndex+1][rowIndex+1];
        for (int i = 0; i < rowIndex+1; i++) {
            for (int j = 0; j < rowIndex+1; j++) {
                if(i == 0 || j == 0 || i == j){
                    arr[i][j] = 1;
                }else{
                    arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
                }
            }
        }
        Integer[] result = arr[rowIndex];
        return Arrays.asList(result);
    }
}
